﻿#pragma once

#include <QWidget>
#include <QListWidget>
#include <QPushButton>
#include <qboxlayout.h>
#include "protocol.h"
#include <QInputDialog>	//用于输入
#include <QMessageBox>
#include <QListWidget>
#include <QFileDialog>
#include <QTimer>		//引入定时器

class Book :
	public QWidget
{
	Q_OBJECT
public:
	explicit Book(QWidget* parent = nullptr);
	void updateFileList(const PDU* pdu);
	void clearEnterDir();
	QString getEnterDir();
	QString getSavePath();
	QFile* getFileInstance();

	qint64 m_iTotal;	//总的文件大小
	qint64 m_iRecved;	//已接收文件大小

public slots:
	void createDir();
	void deleteDir();
	void flushFile();
	void reName();
	void enterDir(const QModelIndex& index);
	void returnPre();
	void uploadFile();
	void uploadFileData();
	void deleteFile();
	void downloadFile();
	void downloadFileData();

private:
	QListWidget* m_pBookListWidget;
	QPushButton* m_pREturnPB;
	QPushButton* m_pCreatDirPB;
	QPushButton* m_pDeleteDirPB;
	QPushButton* m_pRenamePB;
	QPushButton* m_pFlushFilePB;
	QPushButton* m_pUpLoadPB;
	QPushButton* m_pDownLoadPB;
	QPushButton* m_pDeleteFilePB;
	QPushButton* m_pShareFilePB;

	QString m_strEnterDir;			//用来保存当前要进入的文件夹名
	QString m_strUploadFilePath;	//保存要上传文件的路径
	QTimer* m_pTimer;				//用来实现延迟发送等功能
	QString m_strSaveFilePath;		//保存下载文件的存放路径
	QFile m_file;					//用以全局保存传输中的文件
};
